package com.ys.p6TreeSet的了解;

/**
 * 描述:
 * 1.Collection接口的子接口
 *  *    List接口
 *  *       --> List接口中新增了关于索引的方法。
 *  *    Set接口
 *  *       --> Set接口中没有新增方法
 *  * 2.List接口的实现类
 *  *    特点：可以存储相同的元素
 *  *    ArrayList
 *  *       底层：使用“数组”来实现，根据索引查找效率高，但是插入和删除效率非常低。
 *  *       特点：可以存储相同的元素（元素可以为null），并且存储的元素有序。
 *  *    LinkedList
 *  *       底层：使用“双链表”来实现，查找效率低，但是插入和删除“指定节点”效率高。
 *  *       注意：如果根据序号位置来执行“插入”和“删除”操作，效率依旧很低，因为需要通过遍历来找到“插入”和“删除”节点位置。
 *  *       特点：适用于数据量较少的“插入”和“删除”操作，可以存储相同的元素（元素可以为null），并且存储的元素有序。
 *  *    Vector
 *  *       底层：适用“数组”来实现，对比ArrayList集合，Vector集合是线程安全的
 *  *       特点：Vector集合是线程安全的，效率低。
 *  * 3.Set接口的实现类
 *  *     强调：Set接口的实现类中，有添加方法、移除方法、遍历相关的操作和判断元素是否存在的方法，但是没有get()方法。
 *  *     特点：不能存储相同的元素
 *  *          在Set接口的实现类中，都是把存储的元素当成key来存储在Map集合中。
 *  *     HashSet
 *  *        底层：使用“HashMap”来实现，也就是使用“哈希表”来实现。
 *  *        特点：HashSet存储的元素是“无序”的，存储的元素值可以为null。
 *  *          --> 自定义的类，必须重写hashCode()方法和equals()方法
 *  *     LinkedHashSet
 *  *        底层：使用“LinkedHashMap”来实现，也就是使用“链表+哈希表”来实现。
 *  *        特点：HashSet存储的元素是“有序”的，存储的元素值可以为null。
 *  *     TreeSet
 *  *        特点：使用“TreeMap”来实现，也就是使用“红黑树”来实现。
 *  *        特点：TreeSet存储的元素是“有序”的，存储的元素不能为null。
 *  *          --> 需要使用比较器，要么使用内部比较器（Comparable），要么使用外部比较器（Comparator）
 *  * 4.Map接口的实现类
 *  *     作用：用于存储“键值对”，也就是用于存储key和value，Map中key必须唯一，value值可以重复。
 *  *     特点：key必须保证唯一，如果发生重复，则做覆盖操作（覆盖value值）。
 *  *     HashMap
 *  *        底层：采用“哈希表”来实现，因此“增、删、改和查”的效率都很高。
 *  *        特点：存储的键值对是无序的，同时key不能重复（如果重复则做覆盖操作），并且key可以为null
 *  *          --> 如果key为自定义的类，必须重写hashCode()方法和equals()方法
 *  *     LinkedHashMap
 *  *        底层：采用“链表+哈希表”来实现，因此存储的键值对是“有序”的。
 *  *        特点：存储的键值对是有序的，同时key不能重复（如果重复则做覆盖操作），并且key可以为null
 *  *     Hashtable
 *  *        底层：采用“哈希表”来实现，并且是线程安全的，那么效率偏低。
 *  *     TreeMap
 *  *        底层：采用“红黑树”来实现，因此“增、删、改和查”的效率都很高（略低于哈希表）
 *  *        特点：存储的键值对是有序的，同时key不能重复（如果重复则做覆盖操作），并且key不能为null
 *  *          --> 需要使用比较器，要么使用内部比较器（Comparable），要么使用外部比较器（Comparator）
 *  *  5.栈和队列
 *  *    栈（Stack）
 *  *      使用：java中提供了Deque接口，使用Deque接口能实现栈的功能，当然Deque接口实现类是LinkedList集合。
 *  *      特点：先进后出，我们也称之为“FILO”表。
 *  *    队列（Queue）
 *  *      使用：java中提供了Queue接口，使用Queue接口能实现队列的功能，当然Queue接口实现类是LinkedList集合。
 *  *      特点：先进先出，我们也称之为“FIFO”表。
 *
 * @author CodeYang
 * @version 2020/12/29 0:54
 */
public class Collection与Map的集合总结 {
}
